資料庫的語言,是非常有通用性的,
基本上學會一種後,就可以遨遊各個不同千奇百怪的資料庫,
只是細部比較艱深的部分,各個資料庫會有不同的處理方式,
因此我們今天要來學最基本的資料庫語句。
為了幫助讀者更加了解,我們先假定有以下這個資料庫:
id | name | gender | age | hobby |
---|---|---|---|---|
1 | John | male | 23 | basketball |
2 | May | female | 32 | baseball |
3 | Tom | both | 25 | sleep |
我們先建立一個基本的概念『 Primary Key 』,又叫做 PK ,
這個充滿競爭性的名詞,代表的是具有『絕對唯一性的欄位』,
像是上面的表格,PK 為 id ,id 絕對不會有重複的資料,
就像你我都有的身分證,在辦帳號時只會有一個選項,
而且不會與他人重複 (使用產生器不算OWO)。
這就是 PK 的概念。
ps1: 基於婚姻平權 brabra 的緣故,我們假定有 both 這個性別,讚讚。
ps2: SQL 執行環境為 MySQL
ps3: MySQL 安裝歡迎參考: mac
window
讀取資料是最基本的資料庫語句,
而且幾乎每個初階後端工程師,在一家公司開始小雷人時,
最一開始會接觸到的,都是讀取資料庫裡的資料,
因此我們來看看以下的語句結構:
Select name From users
它的結構是這樣的:
Select + 要選擇的欄位 + From + 表格的名稱,
因此上面那句就是『從 users 表格中,取出所有的資料,並只顯示 name 欄位』的意思。
最後會顯示如下:
name |
---|
John |
May |
Tom |
但大部分應用很少只取用特定欄位,
許多會一次取出所有的欄位,因此會使用『 * 』,代替所有的欄位:
Select * From users
最後會顯示所有的資料:
id | name | gender | age | hobby |
---|---|---|---|---|
1 | John | male | 23 | basketball |
2 | May | female | 32 | baseball |
3 | Tom | both | 25 | sleep |
而在查詢時,我們一定會限定條件,
不可能一次取出所有的資料,難不成資料庫一百萬筆,
我只要找 10 筆,就要全部拉出來比嗎? 吃飽太閒。
因此我們可以使用『 where 』語句,設定條件,
文法如下:
Select + 要選擇的欄位 + From + 表格的名稱 Where 篩選的條件...
寫成程式,則為:
Select * From users Where gender = 'male'
這句話的意思就是說,『從 users 中選擇所有 gender 等於 male 的資料,並顯示所有欄位』。
因此最後會產生:
id | name | gender | age | hobby |
---|---|---|---|---|
1 | John | male | 23 | basketball |
除了完全比對欄位值以外,還能設定大於小於的條件,例如:
Select * From users Where age > 24
產生
id | name | gender | age | hobby |
---|---|---|---|---|
2 | May | female | 32 | baseball |
3 | Tom | both | 25 | sleep |
有沒有很好懂容易呀( 燦笑~
再來你可能工作的比較屌一點,可以建資料了,
那你就會用到 Insert 語句,來建立資料。
他的語句結構如下:
Insert into + 表格名稱 ( 欄位名稱 ) + Values( 資料值 )
如果我想新增一筆 user ,那我就寫成如下:
Insert into users(id, name,gender,age,hobby)
Values (4,"Gary","male",50, "coding" )
結果,資料庫會變成:
id | name | gender | age | hobby |
---|---|---|---|---|
1 | John | male | 23 | basketball |
2 | May | female | 32 | baseball |
3 | Tom | both | 25 | sleep |
4 | Gary | male | 50 | coding |
這就是最基本的建立資料語句,
再來,你又更潮了些,可以來更新資料庫的資料,
那你就會需要用到 Update 語句。
Update 語句通常都要搭配 Where 語句,一定要設定條件,
因為許多資料庫系統都有設定安全模式,
避免小菜雞不小心把所有會員更新成 vip 之類的這種蠢事....
因此它的結構通常如下:
Update + 表格名稱 + Set + 欄位名稱 = 值 + Where + 條件
假定我們要更新 John 的年齡,可以這樣寫:
Update users
Set age = 24
Where name = 'John'
最後資料庫會變成:
id | name | gender | age | hobby |
---|---|---|---|---|
1 | John | male | 24 | basketball |
2 | May | female | 32 | baseball |
3 | Tom | both | 25 | sleep |
4 | Gary | male | 50 | coding |
再來,要解說的概念是,如果『兩個以上的條件』,要怎麼顯示?
其實只要使用『 and 』語句,就可以連接不同的條件囉,
像是我們要更新所有年齡大於 30 歲,興趣是 coding 的人,
把名字改成 Terry,可以寫作:
Update users
Set name = 'Terry'
Where age > 30 and hobby = 'coding'
最後結果為:
id | name | gender | age | hobby |
---|---|---|---|---|
1 | Terry | male | 24 | basketball |
2 | May | female | 32 | baseball |
3 | Tom | both | 25 | sleep |
4 | Terry | male | 50 | coding |
Delete 語句,是非常酷炫的,
大概就是你超屌,抖音紅人的程度,會有機會使用到的語句,
由於會清除資料的關係,很可怕的,要謹慎使用。
它的結構非常簡單,而且也和 Update 一樣,通常都設有安全模式。
Delete + From + 表格名 + Where + 條件
例如,我要刪除所有 age = 50 的資料,
那我就可以這樣寫:
Delete From users
Where age = 50
最後我們就會跟 Terry 說掰掰。
id | name | gender | age | hobby |
---|---|---|---|---|
1 | John | male | 24 | basketball |
2 | May | female | 32 | baseball |
3 | Tom | both | 25 | sleep |
如果有任何問題,或是指證文中的錯誤,歡迎寄信給我或留言在下面喔~